package com.gec.service.abst;

import com.gec.domain.Leave;
import com.gec.domain.PageBean;
import com.gec.domain.PageParam;

import java.util.Map;

public interface LeaveService {


    String getHigherDeptLeader(String deptId);

    String getDeptLeader(String deptId);

    void updateAssigneeAndTask(String insID, String taskID, String assignee);

    void startProcess(Leave leave);


    PageBean<Leave> queryMyInitiate(PageParam param, String initiator);

    PageBean<Leave> queryWaitMyApprove(String assigneeId, PageParam param);

    Leave queryMyTaskByTaskId(String taskId);

    void updateStatusByInstance(String proInsID, String status);

    void clearTaskAndAssignee(String proInsID);

    void completeMyApprove(Map<String, Object> nap);

    void cancelProcess(String instId);

    PageBean<Leave> queryHistoryApproved(PageParam param,String assignee);
}
